package kr.pe.johnkim.app.mobile.rest.service;

import kr.pe.johnkim.app.domain.MyHistoryGroup;

import java.util.List;

/**
 * My History Group 관련 기능 들을 정의 하는 인터페이스 이다.
 * 
 * @author : johnkim <cale9797@gmail.com / Bettersoft Inc,.>
 * @Date : 12. 2. 5
 */
public interface MyHistoryGroupService {
    /**
     * My History 그룹 중복 등록을 확인 한다.
     *
     * @param myHistoryGroup
     * @return
     */
    public MyHistoryGroup checkDuplication(MyHistoryGroup myHistoryGroup);

    /**
     * 그룹을 등록 한다.
     *
     * @param myHistoryGroup
     * @return
     */
    public boolean registerGroup(MyHistoryGroup myHistoryGroup);

    /**
     * 그룹 내용을 가져 온다.
     *
     * @param myHistoryGroup
     * @return
     */
    public MyHistoryGroup selectGroup(MyHistoryGroup myHistoryGroup);

    /**
     * 그룹 목록을 가져 온다.
     *
     * @param myHistoryGroup
     * @return
     */
    public List<MyHistoryGroup> selectGroupList(MyHistoryGroup myHistoryGroup);

    /**
     * 그룹 내용을 수정 한다.
     *
     * @param myHistoryGroup
     * @return
     */
    public boolean updateGroup(MyHistoryGroup myHistoryGroup);

    /**
     * 그룹을 비활성화 한다.
     *
     * @param myHistoryGroup
     * @return
     */
    public boolean updateDeactivateGroup(MyHistoryGroup myHistoryGroup);

    /**
     * 사용자가 등록한 그룹 갯수를 가져 온다.
     *
     * @param myHistoryGroup
     * @return
     */
    public MyHistoryGroup selectGroupCount(MyHistoryGroup myHistoryGroup);

    /**
     * Group 목록을 등록 한다.
     *
     * @param myHistoryGroup
     * @return
     */
    public void registerGroupList(MyHistoryGroup myHistoryGroup);
}
